#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time    : 2021/6/15 16:20
# @Author  : fuchen'en
# @Description:
import pika
import sys

credentials = pika.PlainCredentials('test', 'test123')
parameters = pika.ConnectionParameters(host='10.0.20.66',
                                       port='5672',
                                       virtual_host='/',
                                       credentials=credentials)
connection = pika.BlockingConnection(parameters)
channel = connection.channel()

channel.exchange_declare(exchange='topic_logs', exchange_type='topic')
result = channel.queue_declare(queue='', exclusive=True)
queue_name = result.method.queue

binding_keys = sys.argv[1:]
print(binding_keys)
if not binding_keys:
    sys.stderr.write('Usage: {!s} [binding_key]...\n'.format(sys.argv[0]))
    sys.exit(1)

for binding_key in binding_keys:
    channel.queue_bind(exchange='topic_logs', queue=queue_name, routing_key=binding_key)

print(' [*] Waiting for logs. To exit press CTRL + C')


def callback(ch, method, properties, body):
    print(' [x] {!r}:{!r}'.format(method.routing_key, body))


channel.basic_consume(queue=queue_name, on_message_callback=callback, auto_ack=True)

channel.start_consuming()
